package com.ssy.lingxi.platform.template.service.service.web;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.template.api.model.dto.inner.OpenMroInnerDTO;
import com.ssy.lingxi.platform.template.service.entity.adorn.PageTemplate;
import com.ssy.lingxi.platform.template.service.model.dto.common.IdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.OpenMroDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.SiteIdShopIdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.TemplateInfoDTO;
import com.ssy.lingxi.platform.template.service.model.dto.web.PageTemplateTypeDTO;
import com.ssy.lingxi.platform.template.service.model.dto.web.ShelfTemplateDTO;
import com.ssy.lingxi.platform.template.service.model.vo.web.PageTemplateVO;
import com.ssy.lingxi.platform.template.service.model.vo.web.UseWebPlatformTemplateVO;

import java.util.List;

/**
 * web - 页面模板 - 业务处理层
 * @author fhj
 * @version 2.0.0
 * @date 2020/12/11
 */
public interface PageTemplateWebService {

    Wrapper<UseWebPlatformTemplateVO> findPlatformTemplate(Long siteId,String provinceCode,String cityCode);

    Wrapper<PageTemplate> findEnterpriseTemplate(SiteIdShopIdDTO dto);

    Wrapper<PageTemplate> findSelfTemplate(Long memberId, Long shopId);

    Wrapper<PageTemplate> findGoodsDescribeTemplate(Long siteId);

    Wrapper<List<PageTemplate>> findAllTemplateByType(PageTemplateTypeDTO dto, UserLoginCacheDTO user);

    Wrapper<PageTemplate> findTemplateDetails(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> shelfTemplate(ShelfTemplateDTO dto, UserLoginCacheDTO user);

    Wrapper<List<PageTemplateVO>> findAllShelfShopTemplate(UserLoginCacheDTO user);

    Wrapper<PageTemplateVO> findShopTemplateDetails(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> useShopTemplate(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<List<PageTemplateVO>> findAllShelfChannelTemplate(UserLoginCacheDTO user);

    Wrapper<PageTemplateVO> findChannelTemplateDetails(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> useChannelTemplate(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<PageData<PageTemplate>> findAllActivityTemplate(PageVO dto, Integer environment);

    Wrapper<List<PageTemplateVO>> findAllSelfTemplate(UserLoginCacheDTO user);

    Wrapper<PageTemplateVO> findSelfTemplateDetails(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> useSelfTemplate(TemplateInfoDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> openMro(OpenMroDTO openMroDTO, UserLoginCacheDTO user);

    Wrapper<Boolean> openMroInner(OpenMroInnerDTO dto);
}
